home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2005 June / PCpro_2005_06.ISO / files / opensource / amc / amc_install.exe / {app} / Scripts / ShareReactor (RU) (large pic).ifs < prev    next >
Encoding:
Text File  |  2005-03-01  |  12.2 KB  |  426 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=m a x
  8. Title=Sharereactor.ru
  9. Description=Import data & picture from Sharereactor.ru
  10. Site=Sharereactor.ru
  11. Language=RU
  12. Version=1.01
  13. Requires=3.5.0
  14. Comments=Based on the script made for version 3.x by AIG corrected by KoSeA & Leonid_Z & m a x
  15.  
  16. License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
  17. GetInfo=1
  18.  
  19. [Options]
  20. ***************************************************)
  21.  
  22.  
  23. program Sharereactorru;  
  24. var  
  25.   MovieName: string;  
  26.   
  27. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;  
  28. var  
  29.   i: Integer;  
  30. begin  
  31.   result := -1;  
  32.   if StartAt < 0 then  
  33.     StartAt := 0;  
  34.   for i := StartAt to List.Count-1 do  
  35.     if Pos(Pattern, List.GetString(i)) <> 0 then  
  36.     begin  
  37.       result := i;  
  38.       Break;  
  39.     end;  
  40. end;  
  41.   
  42. procedure AnalyzePage(Address: string);  
  43. var  
  44.   Page: TStringList;  
  45.   LineNr: Integer;  
  46. begin  
  47.   Page := TStringList.Create;  
  48.   Page.Text := GetPage(Address);  
  49.    
  50.     PickTreeClear;  
  51.     LineNr := 0;  
  52.     LineNr := FindLine('╧ε Γα°σ∞≤ τα∩≡ε±≤ ε≥εß≡αφε', Page, LineNr);  
  53.     if LineNr > -1 then  
  54.     begin  
  55.       PickTreeAdd('╧ε Γα°σ∞≤ τα∩≡ε±≤ ε≥εß≡αφε', '');  
  56.       AddMoviesTitles(Page, LineNr);  
  57.     end;  
  58.    
  59.     if PickTreeExec(Address) then  
  60.      begin  
  61.        Page.Free;  
  62.        Page := TStringList.Create;  
  63.        Page.Text := GetPage(Address);  
  64.        SetField(fieldURL, Address);  
  65.        AnalyzeMoviePage(Page)  
  66.      end  
  67.  Page.Free;  
  68. end;  
  69.   
  70. procedure AnalyzeMoviePage(Page: TStringList);  
  71. var  
  72.   Line, Value, value1, cuchr: string;  
  73.   LineNr, i: Integer;  
  74.   BeginPos, EndPos: Integer;  
  75.   
  76. begin  
  77.   
  78.   // Original Title & TranslatedTitle & Year  
  79.  
  80. //╨≤±±Ωεσ φατΓαφΦσ
  81.    LineNr := FindLine('<td><H1>', Page, 0);
  82.    Line := Page.GetString(LineNr);  
  83.    if LineNr > -1 then  
  84.    begin  
  85.     BeginPos := pos('<H1>', Line);  
  86.     if BeginPos > 0 then  
  87.       BeginPos := BeginPos + 4;  
  88.     EndPos := Length(Line);  
  89.     Value := copy(Line, BeginPos, EndPos - BeginPos-22 );  
  90.     HTMLDecode(Value);  
  91.     SetField(fieldTranslatedTitle, Value);  
  92.    end  
  93.   
  94. //╬≡ΦπΦφαδⁿφεσ φατΓαφΦσ  
  95.    LineNr := FindLine(' ', Page, LineNr+1);
  96.    Line := Page.GetString(LineNr);  
  97.    if LineNr > -1 then  
  98.    begin  
  99.     BeginPos := pos('</B>', Line);  
  100.     if BeginPos > 0 then  
  101.       BeginPos := BeginPos + 5;  
  102.     EndPos := Length(Line);  
  103.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  104.     HTMLDecode(Value);  
  105.     SetField(fieldOriginalTitle, Value);  
  106.    end  
  107.   
  108. //├εΣ Γ√⌡εΣα  
  109.    LineNr := FindLine(' ', Page, LineNr+1);
  110.    Line := Page.GetString(LineNr);  
  111.    if LineNr > -1 then  
  112.    begin  
  113.     BeginPos := pos('</B>', Line);  
  114.     if BeginPos > 0 then  
  115.       BeginPos := BeginPos + 5;  
  116.     EndPos := Length(Line);  
  117.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  118.     SetField(fieldYear, Value);  
  119.    end;  
  120.   
  121. //╞αφ≡
  122.    LineNr := FindLine('document.write', Page, LineNr+1);
  123.    Line := Page.GetString(LineNr);  
  124.    if LineNr > -1 then  
  125.    begin  
  126.     BeginPos := pos('("', Line);  
  127.     if BeginPos > 0 then  
  128.       BeginPos := BeginPos + 2;  
  129.     EndPos := Length(Line);  
  130.     Value := copy(Line, BeginPos, EndPos - BeginPos-11 );  
  131.     HTMLDecode(Value);  
  132.     SetField(fieldCategory, Value);  
  133.    end;  
  134.   
  135. //╨σµΦ±cσ≡ 
  136.    LineNr := FindLine(' ', Page, LineNr+1); 
  137.    Line := Page.GetString(LineNr);  
  138.    if LineNr > -1 then  
  139.    begin  
  140.     BeginPos := pos('</B>', Line);  
  141.     if BeginPos > 0 then  
  142.       BeginPos := BeginPos + 5;  
  143.     EndPos := Length(Line);  
  144.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  145.     HTMLDecode(Value);  
  146.     SetField(fieldDirector,Value);  
  147.    end  
  148.   
  149. //└Ω≥σ≡√  
  150.    LineNr := FindLine(' ', Page, LineNr+1);
  151.    Line := Page.GetString(LineNr);  
  152.    if LineNr > -1 then  
  153.    begin  
  154.     BeginPos := pos('</B>', Line);  
  155.     if BeginPos > 0 then  
  156.       BeginPos := BeginPos + 5;  
  157.     EndPos := Length(Line);  
  158.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  159.     HTMLDecode(Value);  
  160.     HTMLRemoveTags(Value);  
  161.     SetField(fieldActors,value);  
  162.    end;  
  163.  
  164. //╬∩Φ±αφΦσ    
  165.    LineNr := FindLine(' ', Page, LineNr+1);
  166.    Line := Page.GetString(LineNr);  
  167.    if LineNr > -1 then  
  168.    begin  
  169.     BeginPos := pos('</B>', Line);  
  170.     if BeginPos > 0 then  
  171.       BeginPos := BeginPos + 5;  
  172.     EndPos := Length(Line);  
  173.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  174.     HTMLDecode(Value);  
  175.     SetField(fieldDescription, Value);  
  176.    end;  
  177.   
  178. //╧≡εΣ■±±σ≡
  179.    LineNr := FindLine(' ', Page, LineNr+1);  
  180.    Line := Page.GetString(LineNr);  
  181.    if LineNr > -1 then  
  182.    begin  
  183.     BeginPos := pos('</B>', Line);  
  184.     if BeginPos > 0 then  
  185.       BeginPos := BeginPos + 5;  
  186.     EndPos := Length(Line);  
  187.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  188.     HTMLDecode(Value);  
  189.     SetField(fieldProducer, Value);  
  190.    end;  
  191.   
  192. ////╧≡εΣεδµΦ≥σδⁿφε±≥ⁿ
  193. //   LineNr := FindLine(' ', Page, LineNr+1);  
  194. //   Line := Page.GetString(LineNr);  
  195. //   if LineNr > -1 then  
  196. //   begin  
  197. //    BeginPos := pos('</B>', Line);  
  198. //    if BeginPos > 0 then  
  199. //      BeginPos := BeginPos + 5;  
  200. //    EndPos := Length(Line);  
  201. //    Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  202. //    HTMLDecode(Value);  
  203. //    SetField(fieldLength, Value);  
  204. //   end;  
  205.  
  206. //▀τ√Ω  
  207.    LineNr := FindLine('▀τ√Ω', Page, LineNr+1);  
  208.    Line := Page.GetString(LineNr);  
  209.    if LineNr > -1 then  
  210.    begin  
  211.     BeginPos := pos('</B>', Line);  
  212.     if BeginPos > 0 then  
  213.       BeginPos := BeginPos + 5;  
  214.     EndPos := Length(Line);  
  215.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  216.     HTMLDecode(Value);  
  217.     SetField(fieldLanguages, Value);  
  218.    end;  
  219.  
  220. //╩ε∞∞σφ≥α≡ΦΦ    
  221.    LineNr := FindLine('╧≡Φ∞σ≈αφΦ ', Page, LineNr+1); 
  222.    Line := Page.GetString(LineNr);  
  223.    if LineNr > -1 then  
  224.    begin  
  225.     BeginPos := pos('</B>', Line);  
  226.     if BeginPos > 0 then  
  227.       BeginPos := BeginPos + 5;  
  228.     EndPos := Length(Line);  
  229.     Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  230.     HTMLDecode(Value);  
  231.     SetField(fieldComments, Value);  
  232.    end;  
  233.  
  234. //╬÷σφΩα
  235.    LineNr := FindLine('╬÷σφΩα ∩εδⁿτεΓα≥σδσΘ:', Page, LineNr+1);
  236.    Line := Page.GetString(LineNr);  
  237.    if LineNr > -1 then  
  238.    begin  
  239.     BeginPos := pos('</B> ', Line);  
  240.     if BeginPos > 0 then  
  241.       BeginPos := BeginPos + 5;  
  242.     EndPos := pos('/10', Line);
  243.     Value := copy(Line, BeginPos, EndPos - BeginPos );  
  244.     SetField(fieldRating, Value);
  245. //    IntToStr(Round(StrToFloat(Value))));
  246.    end;  
  247.    
  248. ////─ε∩εδφΦ≥σδⁿφε
  249. //   LineNr := FindLine(' ', Page, LineNr+1);  
  250. //   Line := Page.GetString(LineNr);  
  251. //   if LineNr > -1 then  
  252. //   begin  
  253. //    BeginPos := pos('</B>', Line);  
  254. //    if BeginPos > 0 then  
  255. //      BeginPos := BeginPos + 5;  
  256. //    EndPos := Length(Line);  
  257. //    Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  258.  
  259. ////╘ε≡∞α≥  
  260. //    LineNr := FindLine(' ', Page, LineNr+1);        
  261. //    Line := Page.GetString(LineNr);  
  262. //    if LineNr > -1 then  
  263. //     begin  
  264. //      BeginPos := pos('</B>', Line);  
  265. //      if BeginPos > 0 then  
  266. //       BeginPos := BeginPos + 5;  
  267. //      EndPos := Length(Line);  
  268. //      Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  269. //      LineNr := FindLine(' ', Page, LineNr+1);  
  270. //      Line := Page.GetString(LineNr);  
  271. //      if LineNr > -1 then  
  272. //       begin  
  273. //        BeginPos := pos('</B>', Line);  
  274. //        if BeginPos > 0 then  
  275. //         BeginPos := BeginPos + 5;  
  276. //        EndPos := Length(Line);  
  277. //        Value := Value+ ', ' + copy(Line, BeginPos, EndPos - BeginPos+1 );  
  278. //        value:=''; 
  279. //        HTMLDecode(Value);  
  280. //        SetField(fieldVideoFormat, Value);  
  281. //       end;  
  282. //     end;  
  283. //   end;  
  284.   
  285. ////╩α≈σ±≥Γε Ωα≡≥ΦφΩΦ
  286. //   LineNr := FindLine(' ', Page, LineNr+1);  
  287. //   Line := Page.GetString(LineNr);  
  288. //   if LineNr > -1 then  
  289. //   begin  
  290. //    BeginPos := pos('</B>', Line);  
  291. //    if BeginPos > 0 then  
  292. //      BeginPos := BeginPos + 5;  
  293. //    EndPos := Length(Line);  
  294. //    Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  295. //    value:=''; 
  296. //    HTMLDecode(Value);  
  297. //    SetField(fieldResolution, Value);  
  298. //   end;  
  299.      
  300.      
  301. //└≤ΣΦε
  302. //   LineNr := FindLine(' ', Page, LineNr+1);  
  303. //   Line := Page.GetString(LineNr);  
  304. //   if LineNr > -1 then  
  305. //   begin  
  306. //    BeginPos := pos('</B>', Line);  
  307. //    if BeginPos > 0 then  
  308. //      BeginPos := BeginPos + 5;  
  309. //    EndPos := Length(Line);  
  310. //    Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  311. //    value:=''; 
  312. //    HTMLDecode(Value);  
  313. //    SetField(fieldAudioFormat, Value);  
  314. //   end;  
  315.  
  316. ////╨ατ∞σ≡  
  317. //   LineNr := FindLine(' ', Page, LineNr+1);  
  318. //   Line := Page.GetString(LineNr);  
  319. //   if LineNr > -1 then  
  320. //   begin  
  321. //    BeginPos := pos('</B>', Line);  
  322. //    if BeginPos > 0 then  
  323. //      BeginPos := BeginPos + 5;  
  324. //    EndPos := Length(Line);  
  325. //    Value := copy(Line, BeginPos, EndPos - BeginPos+1 );  
  326. //    value:=''; 
  327. //    HTMLDecode(Value);  
  328. //    SetField(fieldSize, Value);  
  329. //   end;  
  330.   
  331. //╩α≡≥ΦφΩα 
  332.    LineNr := FindLine('/covers/', Page, 0);  
  333.    Line := Page.GetString(LineNr);  
  334.    if LineNr > -1 then  
  335.    begin  
  336.    BeginPos := pos('/covers/', Line);  
  337.       if BeginPos > 0 then  
  338.      BeginPos := BeginPos; // + 0;  
  339.     EndPos:=pos('.jpg', Line);
  340.     Value := copy(Line, BeginPos, EndPos - BeginPos+4 );  
  341.     Value := 'http://sharereactor.ru'+Value;  
  342.     GetPicture(Value);  
  343.    end  
  344.  
  345.    else  
  346.     begin  
  347.      LineNr := FindLine('/images/', Page, 0);
  348.      Line := Page.GetString(LineNr);  
  349.      if LineNr > -1 then  
  350.       begin  
  351.        BeginPos := pos('http://', Line);
  352.         if BeginPos > 0 then  
  353.       BeginPos := BeginPos; //+ 1;  
  354.     EndPos:=pos('.jpg', Line);
  355.     Value := copy(Line, BeginPos, EndPos - BeginPos+4 );  
  356.     GetPicture(Value);  
  357.      end  
  358.  
  359.    else  
  360.     begin  
  361.      LineNr := FindLine('covers/', Page, 0);
  362.      Line := Page.GetString(LineNr);  
  363.      if LineNr > -1 then  
  364.       begin  
  365.        BeginPos := pos('http://', Line);
  366.         if BeginPos > 0 then  
  367.       BeginPos := BeginPos; //+ 1;  
  368.     EndPos:=pos('.jpg', Line);
  369.     Value := copy(Line, BeginPos, EndPos - BeginPos+4 );  
  370.       GetPicture(Value);  
  371.      end  
  372.  
  373.      end;  
  374.     end;  
  375.   
  376. //  DisplayResults;  
  377. end;  
  378.   
  379.   
  380. procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer);  
  381. var  
  382.   Line: string;  
  383.   MovieTitle, MovieAddress: string;  
  384.   StartPos,EndPos,AddPos: Integer;  
  385. begin  
  386.   
  387.     LineNr := LineNr + 10;  
  388.     Line := Page.GetString(LineNr);  
  389.     StartPos := pos('<A', Line);  
  390.   
  391. repeat  
  392.   
  393.       
  394.     if StartPos > 0 then  
  395.     begin  
  396.       StartPos:=StartPos+8;  
  397.       EndPos := Length(Line);  
  398.       Line:=copy(Line,StartPos,EndPos - StartPos);  
  399.       MovieAddress := copy(Line, 2, pos('">', Line) -2 );  
  400.       StartPos := pos('">', Line) + 2;  
  401.       MovieTitle := copy(Line, StartPos, pos('</A>', Line) - StartPos);  
  402.       HTMLDecode(Movietitle);  
  403.       PickTreeAdd(MovieTitle, 'http://sharereactor.ru' + MovieAddress);  
  404.     end;  
  405.   
  406.     StartPos := Length(Movietitle)+StartPos;  
  407.   
  408.     StartPos := pos('<A', Line);  
  409.   
  410.   until  StartPos <= 0;  
  411. end;  
  412.   
  413. begin  
  414.   if CheckVersion(3,5,0) then  
  415.   begin  
  416.     MovieName := GetField(fieldOriginalTitle);  
  417.     if MovieName = '' then  
  418.       MovieName := GetField(fieldTranslatedTitle);  
  419.     if Input('Sharereactor.ru Import', '┬ΓσΣΦ≥σ φατΓαφΦσ ⌠Φδⁿ∞α:', MovieName) then  
  420.     begin  
  421.       AnalyzePage('http://sharereactor.ru/cgi-bin/mzsearch.cgi?search='+UrlEncode(MovieName));  
  422.     end;  
  423.   end else  
  424.     ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');  
  425. end.  
  426.